package com.xframe.common.core.aop;

/**
 * AOP装饰接口
 *
 * @author xufeng
 * @version 1.0
 * @date 2022-09-28
 */
public interface IMethodDecoration extends Comparable<IMethodDecoration>{

    /**
     * 测试是否满足执行的条件
     */
    boolean testMethod(XAOPContext context);
    /**
     * 初始化
     */
    void init(XAOPContext context);
    /**
     * 目标方法执行之前
     */
    void beforeExecution(XAOPContext context);
    /**
     * 目标方法执行之后
     */
    void afterExecution(XAOPContext context);
    /**
     * 完成
     */
    void finallyComplete(XAOPContext context);
    /**
     * 目标方法执行错误
     */
    void exceptionHandler(XAOPContext context);
    /**
     * 获得排序值
     */
    Integer getExecOrder();
    /**
     * 设置排序值
     */
    void setExecOrder(Integer execOrder);
    /**
     * 获得附加参数
     */
    String getArgs();
    /**
     * 设置附加参数
     */
    void setArgs(String args);
}
